1. Field of the Invention
The present invention relates to storage subsystems. More specifically, the present invention relates to buffers used to transfer data between a host computer system and a storage subsystem.
2. Description of the Related Art
With increasing memory capacity, a mixture of information (e.g., program files, setup files, user data, etc.) can be conveniently stored on a single storage subsystem such as an advanced technology attachment (ATA) flash disk or a removable flash memory card. Data is commonly transferred to the storage subsystem from a host system through the use of a buffer, which temporarily stores the data while it is being written to non-volatile storage. The buffer uses volatile memory that is faster than the non-volatile storage of the subsystem, enabling the subsystem to receive write data at a transfer rate that exceeds the write speed of the non-volatile storage. If power is lost after the host finishes writing to the subsystem but before the data is fully written to non-volatile storage, the host may treat the write operation as successful, even though it is not.
The mixture of information written to a storage subsystem through the buffer may include critical data, such as financial data or executable files. Reliability of the transfer in these situations is typically more important than the speed of the transfer. On the other hand, when the storage subsystem is used to transfer and store non-critical data such as video and audio data, performance is typically critical. Unfortunately, existing storage subsystems do not provide an efficient and effective mechanism for managing the tradeoff between performance and the risk of data loss.